package com.ruoyi.shop.trade.mapper;

import java.util.List;

import com.ruoyi.shop.trade.domain.ShopCart;
import com.ruoyi.shop.trade.vo.ShopCartVo;

/**
 * 购物车Mapper接口
 * 
 * @author xuxiang
 * @date 2023-07-13
 */
public interface ShopCartMapper {
	/**
	 * 查询购物车
	 * 
	 * @param cartId 购物车主键
	 * @return 购物车
	 */
	public ShopCart selectCartById(Long cartId);

	/**
	 * 根据id集合查询购物车
	 * 
	 * @param cartIds
	 * @return
	 */
	public List<ShopCartVo> selectCartByIds(Long[] cartIds);

	/**
	 * 查询购物车列表
	 * 
	 * @param shopCart 购物车
	 * @return 购物车集合
	 */
	public List<ShopCart> selectCartList(ShopCart shopCart);

	/**
	 * 查询满足条件的第一条记录
	 * 
	 * @param shopCart
	 * @return
	 */
	public ShopCart selectFirst(ShopCart shopCart);

	/**
	 * 新增购物车
	 * 
	 * @param shopCart 购物车
	 * @return 结果
	 */
	public int insertCart(ShopCart shopCart);

	/**
	 * 修改购物车
	 * 
	 * @param shopCart 购物车
	 * @return 结果
	 */
	public int updateCart(ShopCart shopCart);

	/**
	 * 删除购物车
	 * 
	 * @param cartId 购物车主键
	 * @return 结果
	 */
	public int deleteCartById(Long cartId);

	/**
	 * 批量删除购物车
	 * 
	 * @param cartIds 需要删除的数据主键集合
	 * @return 结果
	 */
	public int deleteCartByIds(Long[] cartIds);

	/**
	 * 查询购物车数量
	 * 
	 * @param memberId
	 * @return
	 */
	public int getCartCount(Long memberId);

	/**
	 * 修改购物车数量
	 * 
	 * @return
	 */
	public int changeCartCount(ShopCart shopCart);

	/**
	 * 查询可用购物车数据列表
	 * 
	 * @param shopCart 购物车
	 * @return 购物车集合
	 */
	public List<ShopCartVo> queryCartList(ShopCart shopCart);
}
